A recent move in networking has been to the use of cloud technologies. According to some cloud technologies, virtualization of certain types of network functionality such as applications, services, and the like, is used to replace traditional hardware and software. In some virtualized networks, common off the shelf (“COTS”) hardware can be used to host virtual machines that can execute software to provide functionality associated with certain applications or services. Thus, specialized hardware and software can be replaced by generic hardware that can execute specialized software modules.
One advantage of cloud technologies over traditional networking technologies is the ability to elastically increase and/or decrease capacity based upon demand. Because hardware does not have to be deployed to meet demand spikes and/or to reduce capacity when demand dips, the cloud technologies can allow nearly instantaneous changes in capacity. Additionally, redundancy may be used to increase the reliability of services. Because hardware does not have to be deployed to provide redundancy, multiple versions of the same virtual machine may operate on other hardware at any given time.
Because of the shifts in demand and/or redundancy requirements, several instances of virtual machines may run at any given time. Thus, if one virtual machine fails or is compromised, the overall service may not be impacted. One downside, however, is that requests may be routed to a virtual machine without regard to various considerations such as location, cost, etc. Furthermore, providing several instances of virtual machines may increase complexity needed to place and/or control applications and/or to route traffic associated with applications because multiple instances of a particular virtual machine may exist at any given time.